package 炫彩元素类

import (
	xc "gitee.com/go_888/xcgui/xcgui/xc"
	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

// X结构_窗格 X结构_窗格元素.
type X结构_窗格 struct {
	X结构_基础元素
}

// 窗格_创建, 创建窗格元素, 返回元素句柄.
//
// pName: 窗格标题.
//
// nWidth: 宽度.
//
// nHeight: 高度.
//
// hFrameWnd: 框架窗口.
func X创建窗格(窗格标题 string, 宽度, 高度 int32, 框架窗口 int) *X结构_窗格 {
	p := &X结构_窗格{}
	p.X设置句柄(xc.X窗格_创建(窗格标题, 宽度, 高度, 框架窗口))
	return p
}

// 从句柄创建对象.
func X创建窗格并按句柄(句柄 int) *X结构_窗格 {
	p := &X结构_窗格{}
	p.X设置句柄(句柄)
	return p
}

// 从name创建对象, 失败返回nil.
func X创建窗格并按名称(名称 string) *X结构_窗格 {
	handle := xc.X取对象并按名称(名称)
	if handle > 0 {
		p := &X结构_窗格{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID创建对象, 失败返回nil.
func X创建窗格并按UID(UID int32) *X结构_窗格 {
	handle := xc.X取对象并按UID(UID)
	if handle > 0 {
		p := &X结构_窗格{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID名称创建对象, 失败返回nil.
func X创建窗格并按UID名称(名称 string) *X结构_窗格 {
	handle := xc.X取对象并按UID名称(名称)
	if handle > 0 {
		p := &X结构_窗格{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 窗格_置视图, 设置窗格视图元素.
//
// hView: 绑定视图元素.
func (p *X结构_窗格) X设置视图(视图元素 int) *X结构_窗格 {
	xc.X窗格_设置视图(p.X句柄, 视图元素)
	return p
}

// 窗格_置标题, 设置标题文本.
//
// pTitle: 文本内容.
func (p *X结构_窗格) X设置标题(文本内容 string) *X结构_窗格 {
	xc.X窗格_设置标题(p.X句柄, 文本内容)
	return p
}

// 窗格_取标题, 获取标题文本.
func (p *X结构_窗格) X取标题() string {
	return xc.X窗格_取标题(p.X句柄)
}

// 窗格_置标题栏高度, 设置标题栏高度.
//
// nHeight: 高度.
func (p *X结构_窗格) X设置标题栏高度(高度 int32) *X结构_窗格 {
	xc.X窗格_设置标题栏高度(p.X句柄, 高度)
	return p
}

// 窗格_取标题栏高度, 获取标题栏高度.
func (p *X结构_窗格) X取标题栏高度() int32 {
	return xc.X窗格_取标题栏高度(p.X句柄)
}

// 窗格_判断显示, 判断窗格是否显示.
func (p *X结构_窗格) X是否显示() bool {
	return xc.X窗格_是否显示(p.X句柄)
}

// 窗格_置大小, 设置窗格大小.
//
// nWidth: 宽度.
//
// nHeight: 高度.
func (p *X结构_窗格) X设置大小(宽度, 高度 int32) *X结构_窗格 {
	xc.X窗格_设置大小(p.X句柄, 宽度, 高度)
	return p
}

// 窗格_取状态, 获取窗格停靠状态, 返回: Pane_State_.
func (p *X结构_窗格) X取状态() xcc.X窗格状态 {
	return xc.X窗格_取状态(p.X句柄)
}

// 窗格_取视图坐标, 获取窗格视图坐标.
//
// pRect: 接收返回的坐标值.
func (p *X结构_窗格) X取视图坐标(返回矩形 *xc.X结构_矩形) *X结构_窗格 {
	xc.X窗格_取视图坐标(p.X句柄, 返回矩形)
	return p
}

// HidePane 窗格_隐藏.
//
// bGroupActivate: 当为窗格组成员时, 延迟处理窗格组成员激活的切换.
func (p *X结构_窗格) X隐藏(延迟组成员激活 bool) *X结构_窗格 {
	xc.X窗格_隐藏(p.X句柄, 延迟组成员激活)
	return p
}

// ShowPane 窗格_显示.
//
// bGroupActivate: 如果是窗格组成员, 那么窗格组切换当前窗格为显示状态.
func (p *X结构_窗格) X显示(延迟组成员激活 bool) *X结构_窗格 {
	xc.X窗格_显示(p.X句柄, 延迟组成员激活)
	return p
}

// 窗格_停靠, 窗格停靠到码头.
func (p *X结构_窗格) X停靠() *X结构_窗格 {
	xc.X窗格_停靠(p.X句柄)
	return p
}

// 窗格_锁定, 锁定窗格.
func (p *X结构_窗格) X锁定() *X结构_窗格 {
	xc.X窗格_锁定(p.X句柄)
	return p
}

// 窗格_浮动.
func (p *X结构_窗格) X浮动() *X结构_窗格 {
	xc.X窗格_浮动(p.X句柄)
	return p
}

// 窗格_绘制, 手动调用该函数绘制窗格, 以便控制绘制顺序.
//
// hDraw: 图形绘制句柄.
func (p *X结构_窗格) X绘制(图形绘制句柄 int) *X结构_窗格 {
	xc.X窗格_绘制(p.X句柄, 图形绘制句柄)
	return p
}

// 窗口_置选中, 如果窗格是组成员, 设置选中当前窗格可见.
func (p *X结构_窗格) X设置选中() bool {
	return xc.X窗口_设置选中(p.X句柄)
}

// 窗格_是否激活. 判断窗格是否激活, 当为组成员时有效.
func (p *X结构_窗格) X是否激活() bool {
	return xc.X窗格_是否激活(p.X句柄)
}
